#pragma once

#include <string>
#include <vector>
#include <memory>

#include <stdio.h>

// with trailing slash
std::wstring getAppPath();

// with trailing slash
std::wstring getCurrentPath();

std::wstring getFullPath(const std::wstring& path);

const char* myfgets(FILE* file, std::string& s);

class FindFiles {
public:
	struct FileData {
		std::wstring fileName;
		unsigned long long creationTime;
		unsigned long long lastAccessTime;
		unsigned long long lastWriteTime;
		unsigned long long fileSize;
	};
	std::wstring path;
	std::vector<FileData> directories, files;

	FindFiles(const std::wstring& path_);
};

class FindFilesRecursive : public FindFiles {
public:
	std::vector<std::unique_ptr<FindFilesRecursive> > dirs;

	FindFilesRecursive(const std::wstring& path_);
};
